import Vue from 'vue'
import Vuex, { Store } from 'vuex'

Vue.use(Vuex)

let store = new Vuex.Store({
  state: {
    token:'',
    cartArry:JSON.parse(localStorage.getItem('cartArry')) || [],//存储购物车的商品
  },
  mutations: {
    // 设置token
    setToken(state,tokenKey){
      state.token=tokenKey
    },
    // 添加商品到购物车
    addToCart(state,tag){
      let goods=state.cartArry.find(v=>v.title==tag.label)
      if(goods){
        goods.cartCount+=1
      }else{
        state.cartArry.push({title:tag.label,cartCount:1})
      }
    },
    // 减少
    cartReomve(state,index){
      if(state.cartArry[index].cartCount>1){
        state.cartArry[index].cartCount--
      }else{
        if(window.confirm('确定从购物车移除商品吗？')){
          state.cartArry.splice(index,1)
        }
      }
    },
    // 增加
    cartAdd(state,index){
      state.cartArry[index].cartCount++
    },
    // 清空
    cartClear(state){
      state.cartArry=[]
    }
  },
  actions: {
  },
  getters:{
    countSum:state=>{
      let sum=0
      state.cartArry.forEach(v=>{
        sum+=v.cartCount
      })
      return sum
    }
  },
  modules: {
  }
})
//监听每次调用mutations的时候,都会进这个方法，然后我们可以做一些自己想做的处理
store.subscribe((mutations,state)=>{
  localStorage.setItem('cartArry',JSON.stringify(state.cartArry))
})
export default store